/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Vista;

import Controlador.ControlCliente;
import Controlador.ControlCotizacion;
import Controlador.ControlProdServ;
import Controlador.ControlPromocion;
import Modelo.Cliente;
import Modelo.Cotizacion;
import Modelo.Pedido;
import Modelo.Producto;
import Modelo.Promocion;
import Modelo.Proveedor;
import Modelo.Servicio;
import Modelo.Usuario;
import java.awt.CardLayout;
import java.awt.Desktop;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.RowFilter;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;

/**
 *
 * @author diegomanguia
 */
public class Principal extends javax.swing.JFrame {

    /**
     * Creates new form Principal
     */
    private Usuario user;
    final String CLIENTE = "Seleccionar Cliente";
    final String PROD = "Seleccionar Productos";
    final String SERV = "Seleccionar Servicios";
    final String PEDIDO = "Pedido";
    final String EXTRA = "Extra";
    final String PREVISUALIZAR = "Previsualizar";
    final String EXPORTAR = "Exportar";
    private Cotizacion cotActual;
    PnlSeleccionarCliente pnlCliente;
    PnlPedidos pnlPedido;
    PnlProd pnlProd;
    PnlSer pnlServ;
    PnlDatosExtra pnlDatosExtra;
    PnlPrevisualizar pnlPreview;
    PnlExportar pnlExp;
    ArrayList<Cotizacion> l;
    ControlCotizacion controlCot = new ControlCotizacion();
    TableRowSorter<TableModel> rs;
    private int indexLista = 0;
    private boolean avanzar = false, editar = false, cotizar = false;

    public Principal() {

        initComponents();

    }

    //<editor-fold defaultstate="collapsed" desc="Constructor">
    public Principal(Usuario user) {
        this.user = user;
        initComponents();
        setIconImage(Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/Vista/Iconos/Publicont.png")));
        this.setLocationRelativeTo(null);
        lblUser.setText("Usuario: " + user.getCi());
        if (!user.getAdmin()) {
            menuUsuarios.setVisible(false);
            menuPromociones.setVisible(false);
            menuReportes.setVisible(false);
            menuProveedores.setVisible(false);
        }

        agregarPnl();
        try {
            l = controlCot.listar();
        } catch (SQLException ex) {
        }
        tablaCot.setModel(modelo());
        rs = new TableRowSorter<>(tablaCot.getModel());
        tablaCot.setRowSorter(rs);

        txtBuscarCot.getDocument().addDocumentListener(
                new DocumentListener() {
                    @Override
                    public void changedUpdate(DocumentEvent e) {
                        filtrar();
                    }

                    @Override
                    public void insertUpdate(DocumentEvent e) {
                        filtrar();
                    }

                    @Override
                    public void removeUpdate(DocumentEvent e) {
                        filtrar();
                    }
                });

        setExtendedState(MAXIMIZED_BOTH);
        //setLocationRelativeTo(null);

        jTabbedPane1.addChangeListener(new ChangeListener() {

            @Override
            public void stateChanged(ChangeEvent e) {

                if (!cotizar && jTabbedPane1.getSelectedIndex() == 1) {
                    jTabbedPane1.setSelectedIndex(0);
                } else {
                }
                if (jTabbedPane1.getSelectedIndex() == 0) {
                    tablaCot.setRowSorter(null);
                    rs = null;
                    tablaCot.setModel(modelo());
                    rs = new TableRowSorter<>(tablaCot.getModel());
                    tablaCot.setRowSorter(rs);
                    filtrar();
                }

            }
        });
    }
//</editor-fold>

    private void filtrar() {
        RowFilter<TableModel, Object> rf = null;
        try {
            rf = RowFilter.regexFilter(("(?i)") + txtBuscarCot.getText(), 1, 2, 3, 4);
        } catch (java.util.regex.PatternSyntaxException e) {
        }
        rs.setRowFilter(rf);
    }

    //<editor-fold defaultstate="collapsed" desc="modeloCotizacion">
    public DefaultTableModel modelo() {
        String[] columnas = {"Código", "Cliente",
            "Usuario", "Estado", "Fecha Generada"};
        DefaultTableModel tablaM = new DefaultTableModel(columnas, 0) {
            @Override
            public boolean isCellEditable(int row, int column) {
                return false; //To change body of generated methods, choose Tools | Templates.
            }
        };
        try {
            if (user.getAdmin()) {
                l = controlCot.listar();
            } else {
                ArrayList<Cotizacion> listCotTmp = controlCot.listar();
                l = new ArrayList<>();
                for (int i = 0; i < listCotTmp.size(); i++) {
                    Cotizacion cotizacion = listCotTmp.get(i);
                    if (cotizacion.getUsu_cedula().equals(user.getCi())) {
                        l.add(cotizacion);
                    }
                }
            }

        } catch (SQLException ex) {
            ex.printStackTrace();
        }

        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            for (int i = 0; i < l.size(); i++) {
                Cotizacion p = l.get(i);
                tablaM.addRow(new Object[]{p.getCodigo(), mostrarCliente(p.getCli_historia()),
                    p.getUsu_cedula(), p.isEstado() ? "Entregado" : "No Entregado",
                    sdf.format(p.getFechaGenerada())});
            }
        } catch (Exception e) {

            e.printStackTrace();
        }
        return tablaM;
    }

    public String mostrarCliente(Integer historia) {
        String r = "";
        try {
            ArrayList<Cliente> listCli = new ControlCliente().listar();
            for (int i = 0; i < listCli.size(); i++) {
                Cliente cliente = listCli.get(i);
                if (cliente.getHistoria() == historia) {
                    r = historia.toString() + " - " + cliente.getApellidos() + " " + cliente.getNombres();
                    break;
                }
            }
        } catch (SQLException sQLException) {
            System.out.println("Error al listar los clientes");
        }
        return r;
    }
//</editor-fold>

    public void actualizarTablas() {
        pnlCliente.actualizar();
        pnlProd.actualizar();
        pnlServ.actualizar();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jMenuItem1 = new javax.swing.JMenuItem();
        jMenu4 = new javax.swing.JMenu();
        jToolBar1 = new javax.swing.JToolBar();
        lblUser = new javax.swing.JLabel();
        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel3 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        tablaCot = new javax.swing.JTable();
        jLabel2 = new javax.swing.JLabel();
        btnAbrir = new javax.swing.JButton();
        btnNuevo = new javax.swing.JButton();
        txtBuscarCot = new org.jdesktop.swingx.JXSearchField();
        jPanel4 = new javax.swing.JPanel();
        pnlMostrar = new javax.swing.JPanel();
        jPanel5 = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        jScrollPane2 = new javax.swing.JScrollPane();
        listAccion = new javax.swing.JList();
        jPanel6 = new javax.swing.JPanel();
        btnSiguiente = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem8 = new javax.swing.JMenuItem();
        jMenuItem9 = new javax.swing.JMenuItem();
        menuUsuarios = new javax.swing.JMenu();
        mbtnNuevoUsuario = new javax.swing.JMenuItem();
        mbtnModUsuario = new javax.swing.JMenuItem();
        mbtnEliminarUsuario = new javax.swing.JMenuItem();
        menuInventario = new javax.swing.JMenu();
        menuRegistrar = new javax.swing.JMenu();
        mbtnRegProd = new javax.swing.JMenuItem();
        mbtnRegServ = new javax.swing.JMenuItem();
        jMenuItem2 = new javax.swing.JMenuItem();
        jMenuItem7 = new javax.swing.JMenuItem();
        menuProveedores = new javax.swing.JMenu();
        jMenuItem4 = new javax.swing.JMenuItem();
        jMenuItem3 = new javax.swing.JMenuItem();
        menuPromociones = new javax.swing.JMenu();
        jMenuItem6 = new javax.swing.JMenuItem();
        jMenu6 = new javax.swing.JMenu();
        jMenuItem10 = new javax.swing.JMenuItem();
        menuReportes = new javax.swing.JMenu();
        jMenuItem5 = new javax.swing.JMenuItem();
        jMenuItem11 = new javax.swing.JMenuItem();

        jMenuItem1.setText("jMenuItem1");

        jMenu4.setText("jMenu4");

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("PUBLICONT");
        setMinimumSize(new java.awt.Dimension(632, 373));
        getContentPane().setLayout(new java.awt.BorderLayout(10, 10));

        jToolBar1.setFloatable(false);
        jToolBar1.setMaximumSize(new java.awt.Dimension(36, 25));

        lblUser.setText("Usuario:");
        jToolBar1.add(lblUser);

        getContentPane().add(jToolBar1, java.awt.BorderLayout.PAGE_END);

        jPanel1.setLayout(new java.awt.BorderLayout());

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Iconos/PubliContTransparente.png"))); // NOI18N
        jPanel2.add(jLabel1);

        jPanel1.add(jPanel2, java.awt.BorderLayout.PAGE_START);

        jScrollPane1.setViewportBorder(javax.swing.BorderFactory.createTitledBorder(""));

        tablaCot.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null}
            },
            new String [] {
                "Código", "Cliente", "Usuario", "Estado", "Fecha Generada"
            }
        ));
        jScrollPane1.setViewportView(tablaCot);

        jLabel2.setText("Buscar:");

        btnAbrir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Iconos/document-open22.png"))); // NOI18N
        btnAbrir.setText("Abrir");
        btnAbrir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnAbrirActionPerformed(evt);
            }
        });

        btnNuevo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Iconos/document-new.png"))); // NOI18N
        btnNuevo.setText("Nuevo");
        btnNuevo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnNuevoActionPerformed(evt);
            }
        });

        txtBuscarCot.setToolTipText("Buscar");

        org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel3Layout.createSequentialGroup()
                .add(303, 303, 303)
                .add(jLabel2)
                .add(32, 32, 32)
                .add(txtBuscarCot, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 162, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(org.jdesktop.layout.GroupLayout.TRAILING, jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 624, Short.MAX_VALUE)
                    .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel3Layout.createSequentialGroup()
                        .add(0, 0, Short.MAX_VALUE)
                        .add(btnNuevo)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                        .add(btnAbrir)))
                .addContainerGap())
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel3Layout.createSequentialGroup()
                .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jLabel2)
                    .add(txtBuscarCot, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 288, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(btnAbrir)
                    .add(btnNuevo)))
        );

        jTabbedPane1.addTab("Principal", jPanel3);

        jPanel4.setEnabled(false);
        jPanel4.setLayout(new java.awt.BorderLayout(10, 10));

        pnlMostrar.setLayout(new java.awt.CardLayout());
        jPanel4.add(pnlMostrar, java.awt.BorderLayout.CENTER);

        jPanel5.setLayout(new java.awt.BorderLayout(5, 10));

        jLabel3.setText("Acciones");
        jPanel5.add(jLabel3, java.awt.BorderLayout.PAGE_START);

        listAccion.setModel(new javax.swing.AbstractListModel() {
            String[] strings = { "Seleccionar Cliente", "Pedidos", "Seleccionar Producto", "Seleccionar Servicio", "Datos Extra", "Previsualizar", "Exportar" };
            public int getSize() { return strings.length; }
            public Object getElementAt(int i) { return strings[i]; }
        });
        listAccion.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        listAccion.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                listAccionMouseClicked(evt);
            }
        });
        listAccion.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                listAccionValueChanged(evt);
            }
        });
        jScrollPane2.setViewportView(listAccion);

        jPanel5.add(jScrollPane2, java.awt.BorderLayout.WEST);

        jPanel4.add(jPanel5, java.awt.BorderLayout.WEST);

        jPanel6.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));

        btnSiguiente.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Iconos/sig.gif"))); // NOI18N
        btnSiguiente.setText("Siguiente");
        btnSiguiente.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSiguienteActionPerformed(evt);
            }
        });
        jPanel6.add(btnSiguiente);

        jPanel4.add(jPanel6, java.awt.BorderLayout.PAGE_END);

        jTabbedPane1.addTab("Cotización", jPanel4);

        jPanel1.add(jTabbedPane1, java.awt.BorderLayout.CENTER);
        jTabbedPane1.getAccessibleContext().setAccessibleName("");
        jTabbedPane1.getAccessibleContext().setAccessibleDescription("");

        getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);

        jMenu1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Iconos/Card_file.png"))); // NOI18N
        jMenu1.setText("Archivo");

        jMenuItem8.setText("Ayuda");
        jMenuItem8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem8ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem8);

        jMenuItem9.setText("Salir");
        jMenuItem9.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem9ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem9);

        jMenuBar1.add(jMenu1);

        menuUsuarios.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Iconos/meeting-participant.png"))); // NOI18N
        menuUsuarios.setText("Usuarios");

        mbtnNuevoUsuario.setText("Registrar Nuevo Usuario");
        mbtnNuevoUsuario.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mbtnNuevoUsuarioActionPerformed(evt);
            }
        });
        menuUsuarios.add(mbtnNuevoUsuario);

        mbtnModUsuario.setText("Modificar Usuario");
        mbtnModUsuario.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mbtnModUsuarioActionPerformed(evt);
            }
        });
        menuUsuarios.add(mbtnModUsuario);

        mbtnEliminarUsuario.setText("Eliminar Usuario");
        mbtnEliminarUsuario.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mbtnEliminarUsuarioActionPerformed(evt);
            }
        });
        menuUsuarios.add(mbtnEliminarUsuario);

        jMenuBar1.add(menuUsuarios);

        menuInventario.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Iconos/icon-32x32.png"))); // NOI18N
        menuInventario.setText("Inventario");

        menuRegistrar.setText("Registrar");

        mbtnRegProd.setText("Productos");
        mbtnRegProd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mbtnRegProdActionPerformed(evt);
            }
        });
        menuRegistrar.add(mbtnRegProd);

        mbtnRegServ.setText("Servicios");
        mbtnRegServ.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mbtnRegServActionPerformed(evt);
            }
        });
        menuRegistrar.add(mbtnRegServ);

        jMenuItem2.setText("Importar");
        jMenuItem2.setEnabled(false);
        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });
        menuRegistrar.add(jMenuItem2);

        menuInventario.add(menuRegistrar);

        jMenuItem7.setText("Visualizar");
        jMenuItem7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem7ActionPerformed(evt);
            }
        });
        menuInventario.add(jMenuItem7);

        jMenuBar1.add(menuInventario);

        menuProveedores.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Iconos/proveedor.png"))); // NOI18N
        menuProveedores.setText("Proveedor");

        jMenuItem4.setText("Registrar Proveedor");
        jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem4ActionPerformed(evt);
            }
        });
        menuProveedores.add(jMenuItem4);

        jMenuItem3.setText("Visualizar");
        jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem3ActionPerformed(evt);
            }
        });
        menuProveedores.add(jMenuItem3);

        jMenuBar1.add(menuProveedores);

        menuPromociones.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Iconos/promo.gif"))); // NOI18N
        menuPromociones.setText("Promociones");
        menuPromociones.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menuPromocionesActionPerformed(evt);
            }
        });

        jMenuItem6.setText("Visualizar Promociones");
        jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem6ActionPerformed(evt);
            }
        });
        menuPromociones.add(jMenuItem6);

        jMenuBar1.add(menuPromociones);

        jMenu6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Iconos/client.png"))); // NOI18N
        jMenu6.setText("Clientes");

        jMenuItem10.setText("Visualizar Clientes");
        jMenuItem10.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem10ActionPerformed(evt);
            }
        });
        jMenu6.add(jMenuItem10);

        jMenuBar1.add(jMenu6);

        menuReportes.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Iconos/reportes.png"))); // NOI18N
        menuReportes.setText("Reportes");

        jMenuItem5.setText("Cotizaciones por Usuario");
        jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem5ActionPerformed(evt);
            }
        });
        menuReportes.add(jMenuItem5);

        jMenuItem11.setText("Cotizaciones Vigentes");
        jMenuItem11.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem11ActionPerformed(evt);
            }
        });
        menuReportes.add(jMenuItem11);

        jMenuBar1.add(menuReportes);

        setJMenuBar(jMenuBar1);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void mbtnEliminarUsuarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mbtnEliminarUsuarioActionPerformed
        EliminarUsuario obj = new EliminarUsuario(user);
        obj.setVisible(true);
        obj.pack();// TODO add your handling code here:
    }//GEN-LAST:event_mbtnEliminarUsuarioActionPerformed

    private void mbtnNuevoUsuarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mbtnNuevoUsuarioActionPerformed
        RegistroUsuarios obj = new RegistroUsuarios();
        obj.setVisible(true);
        obj.pack();
    }//GEN-LAST:event_mbtnNuevoUsuarioActionPerformed

    private void mbtnModUsuarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mbtnModUsuarioActionPerformed
        ModificarUsuario obj = new ModificarUsuario();
        obj.setVisible(true);
        obj.pack();// TODO add your handling code here:
    }//GEN-LAST:event_mbtnModUsuarioActionPerformed

    private void mbtnRegServActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mbtnRegServActionPerformed
        RegistrarServicio rSrv = new RegistrarServicio();
        rSrv.setVisible(true);
        rSrv.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosed(WindowEvent e) {
                actualizarTablas();
            }

        });
    }//GEN-LAST:event_mbtnRegServActionPerformed

    private void jMenuItem7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem7ActionPerformed
        VisualizarProdServ ven = new VisualizarProdServ();
        ven.setVisible(true);
        ven.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosed(WindowEvent e) {
                actualizarTablas();
            }

        });
    }//GEN-LAST:event_jMenuItem7ActionPerformed

    private void mbtnRegProdActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mbtnRegProdActionPerformed
        try {
            ArrayList<Proveedor> listaprov = new Controlador.ControlProveedor().listar();

            if (listaprov.size() >= 1) {
                RegistrarProd ven = new RegistrarProd();
                ven.setVisible(true);
                ven.addWindowListener(new WindowAdapter() {

                    @Override
                    public void windowClosed(WindowEvent e) {
                        actualizarTablas();
                    }

                });
            } else {
                JOptionPane.showMessageDialog(null, "No hay proveedores registrados.");
            }
        } catch (SQLException ex) {
            Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_mbtnRegProdActionPerformed

    private void jMenuItem9ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem9ActionPerformed
        this.dispose();
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem9ActionPerformed

    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
        // TODO add your handling code here:
        Importar ven = new Importar();
        ven.setVisible(true);
        ven.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosed(WindowEvent e) {
                actualizarTablas();
            }

        });
    }//GEN-LAST:event_jMenuItem2ActionPerformed

    private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed
        // TODO add your handling code here:
        VisualizarProveedores ven = new VisualizarProveedores();
        ven.setVisible(true);
        ven.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosed(WindowEvent e) {
                actualizarTablas();
            }

        });
    }//GEN-LAST:event_jMenuItem3ActionPerformed

    private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem4ActionPerformed
        RegistrarProveedor ven = new RegistrarProveedor();
        ven.setVisible(true);
    }//GEN-LAST:event_jMenuItem4ActionPerformed

    private void menuPromocionesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menuPromocionesActionPerformed
    }//GEN-LAST:event_menuPromocionesActionPerformed

    private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem6ActionPerformed
        VisualizarPromociones ven = new VisualizarPromociones();
        ven.setLocationRelativeTo(null);
        ven.setVisible(true);
    }//GEN-LAST:event_jMenuItem6ActionPerformed

    private void jMenuItem10ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem10ActionPerformed
        VisualizarClientes ven = new VisualizarClientes();
        ven.setLocationRelativeTo(null);
        ven.setVisible(true);
        ven.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosed(WindowEvent e) {
                actualizarTablas();
            }

        });
    }//GEN-LAST:event_jMenuItem10ActionPerformed

    private void listAccionMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_listAccionMouseClicked
    }//GEN-LAST:event_listAccionMouseClicked

    public float calcularSubTotal(Cotizacion cot) {
        float r = 0;
        try {
            ArrayList<Pedido> listPed = cot.getPedidos();
            HashMap<Integer, Producto> mapaProd = mapaProductos();
            HashMap<Integer, Servicio> mapaServ = mapaServicios();
            HashMap<Integer, Promocion> mapaProm = mapaPromociones();
            for (int i = 0; i < listPed.size(); i++) {
                Pedido pedido = listPed.get(i);
                // Costo del servicio por la cantidad
                r += pedido.getCod_serv() == -1 ? 0 : mapaServ.get(pedido.getCod_serv()).getPrecio()
                        * pedido.getPed_cantidad();
                if (pedido.getCod_prod() != -1) {
                    Float desc = 0f, fact;
                    if (mapaProd.get(pedido.getCod_prod()).getCodPromocion() != -1) {
                        if (mapaProm.get(mapaProd.get(pedido.getCod_prod()).getCodPromocion()).getFechaFinal().after(new Date())) {
                            desc = mapaProm.get(mapaProd.get(pedido.getCod_prod()).getCodPromocion()).getDescuento() / 100;
                        }

                    }
                    fact = 1 - desc;
                    if (fact >= 0) {
                        r += mapaProd.get(pedido.getCod_prod()).getPrecioUnitario()
                                * fact * pedido.getPed_cantidad();
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("Subtotal: " + r);
        return r;
    }

    public HashMap<Integer, Producto> mapaProductos() {
        HashMap<Integer, Producto> map = new HashMap<>();
        ArrayList<Producto> listProd = new ControlProdServ().listarProductos();
        for (int i = 0; i < listProd.size(); i++) {
            Producto producto = listProd.get(i);
            map.put(Integer.parseInt(producto.getCodigo()), producto);
        }
        return map;
    }

    public HashMap<Integer, Servicio> mapaServicios() {
        HashMap<Integer, Servicio> map = new HashMap<>();
        ArrayList<Servicio> listServ = new ControlProdServ().listarServicios();
        for (int i = 0; i < listServ.size(); i++) {
            Servicio servicio = listServ.get(i);
            map.put(Integer.parseInt(servicio.getCodigo()), servicio);
        }
        return map;
    }

    public HashMap<Integer, Promocion> mapaPromociones() {
        HashMap<Integer, Promocion> map = new HashMap<>();
        try {
            ArrayList<Promocion> listProm = new ControlPromocion().listar();
            for (int i = 0; i < listProm.size(); i++) {
                Promocion promocion = listProm.get(i);
                map.put(promocion.getCodigo(), promocion);
            }
        } catch (SQLException sQLException) {
        }
        return map;
    }

    private void listAccionValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_listAccionValueChanged

        if (!evt.getValueIsAdjusting()) {
            int i = listAccion.getSelectedIndex();
            int opc = -1;

            if (indexLista != i) {
                switch (indexLista) {
                    case 0:
                        //<editor-fold defaultstate="collapsed" desc="Seleccionar Cliente">
                        if (!avanzar) {
                            opc = JOptionPane.showConfirmDialog(pnlCliente, "¿Desea conservar los cambios?");
                            if (opc == JOptionPane.YES_OPTION) {
                                try {
                                    cotActual.setCli_historia(pnlCliente.clienteSeleccionado());
                                } catch (Exception exception) {
                                    JOptionPane.showMessageDialog(pnlCliente, "Seleccione un cliente");
                                }
                            }
                        } else {
                            if (!editar) {
                                try {
                                    cotActual.setCli_historia(pnlCliente.clienteSeleccionado());
                                } catch (Exception exception) {
                                    JOptionPane.showMessageDialog(pnlCliente, "Seleccione un cliente");
                                }
                            }
                        }
                        //</editor-fold>
                        break;
                    case 2:
                        //<editor-fold defaultstate="collapsed" desc="Seleccionar Productos">
                        if (!avanzar) {
                            opc = JOptionPane.showConfirmDialog(rootPane, "¿Desea conservar los cambios?");
                            if (opc == JOptionPane.YES_OPTION) {
                                try {
                                    int k = pnlPedido.getTablaPedidos().getSelectedRow();
                                    int cProd = pnlProd.prodSeleccionado();
                                    cotActual.setPedidos(pnlPedido.getL());
                                    cotActual.getPedidos().get(k).setCod_prod(cProd);
                                    pnlPedido.setL(cotActual.getPedidos());
                                } catch (ArrayIndexOutOfBoundsException arrayIndexOutOfBoundsException) {
                                    JOptionPane.showMessageDialog(pnlCliente, "Seleccione un producto de la tabla.");
                                }
                            }
                        } else {
                            try {
                                int k = pnlPedido.getTablaPedidos().getSelectedRow();
                                int cProd = pnlProd.prodSeleccionado();
                                cotActual.setPedidos(pnlPedido.getL());
                                cotActual.getPedidos().get(k).setCod_prod(cProd);
                                pnlPedido.setL(cotActual.getPedidos());
                            } catch (ArrayIndexOutOfBoundsException arrayIndexOutOfBoundsException) {
                                JOptionPane.showMessageDialog(pnlCliente, "Seleccione un producto de la tabla.");
                            }
                        }
                        //</editor-fold>
                        break;
                    case 3:
                        //<editor-fold defaultstate="collapsed" desc="Seleccionar Servicios">
                        if (!avanzar) {
                            opc = JOptionPane.showConfirmDialog(rootPane, "¿Desea conservar los cambios?");
                            if (opc == JOptionPane.YES_OPTION) {
                                try {
                                    int k = pnlPedido.getTablaPedidos().getSelectedRow();
                                    int cServ = pnlServ.getServSeleccionado();
                                    cotActual.setPedidos(pnlPedido.getL());
                                    cotActual.getPedidos().get(k).setCod_serv(cServ);
                                    pnlPedido.setL(cotActual.getPedidos());
                                } catch (ArrayIndexOutOfBoundsException arrayIndexOutOfBoundsException) {
                                    JOptionPane.showMessageDialog(pnlCliente, "Seleccione un servicio de la tabla.");
                                }
                            }
                        } else {
                            try {
                                int k = pnlPedido.getTablaPedidos().getSelectedRow();
                                int cServ = pnlServ.getServSeleccionado();
                                cotActual.setPedidos(pnlPedido.getL());
                                cotActual.getPedidos().get(k).setCod_serv(cServ);
                                pnlPedido.setL(cotActual.getPedidos());
                            } catch (ArrayIndexOutOfBoundsException arrayIndexOutOfBoundsException) {
                                JOptionPane.showMessageDialog(pnlCliente, "Seleccione un servicio de la tabla.");
                            }
                        }
                        //</editor-fold>
                        break;
                    case 4:
                        //<editor-fold defaultstate="collapsed" desc="Datos Extra">
                        if (!avanzar) {
                            opc = JOptionPane.showConfirmDialog(rootPane, "¿Desea conservar los cambios?");
                            if (opc == JOptionPane.YES_OPTION) {
                                cotActual.setObservacion(pnlDatosExtra.getTxtObservacion().getText());
                                cotActual.setFechaFinal(pnlDatosExtra.getDateFinal().getDate());
                                cotActual.setTiempoEntrega(Integer.parseInt(pnlDatosExtra.getSpnPGanancia().getValue().toString()));
                                cotActual.setFormaPago(pnlDatosExtra.getTxtFormaPago().getText());
                            }
                        } else {
                            cotActual.setObservacion(pnlDatosExtra.getTxtObservacion().getText());
                            cotActual.setFechaFinal(pnlDatosExtra.getDateFinal().getDate());
                            cotActual.setTiempoEntrega(Integer.parseInt(pnlDatosExtra.getSpnPGanancia().getValue().toString()));
                            cotActual.setFormaPago(pnlDatosExtra.getTxtFormaPago().getText());
                        }
                        //</editor-fold>
                        break;
                    default:
                    //throw new AssertionError();
                }
            }
            avanzar = false;
            indexLista = i;
            switch (i) {
                case 0:
                    pnlCliente.actualizar();
                    ((CardLayout) pnlMostrar.getLayout()).show(pnlMostrar, CLIENTE);
                    break;
                case 1:
                    ((CardLayout) pnlMostrar.getLayout()).show(pnlMostrar, PEDIDO);
                    break;
                case 2:
                    pnlProd.actualizar();
                    ((CardLayout) pnlMostrar.getLayout()).show(pnlMostrar, PROD);
                    break;
                case 3:
                    pnlServ.actualizar();
                    ((CardLayout) pnlMostrar.getLayout()).show(pnlMostrar, SERV);
                    break;
                case 4:
                    ((CardLayout) pnlMostrar.getLayout()).show(pnlMostrar, EXTRA);
                    break;
                case 5:
                    guardarCot();
                    ((CardLayout) pnlMostrar.getLayout()).show(pnlMostrar, PREVISUALIZAR);
                    pnlPreview.generar(cotActual);
                    break;
                default:
                    guardarCot();
                    pnlExp.setCotActual(cotActual);
                    ((CardLayout) pnlMostrar.getLayout()).show(pnlMostrar, EXPORTAR);
                // throw new AssertionError();
            }
            int z = (listAccion.getModel()).getSize();
            if (i < z - 1) {
                btnSiguiente.setEnabled(true);
            } else {
                btnSiguiente.setEnabled(false);
            }
        }


    }//GEN-LAST:event_listAccionValueChanged

    private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNuevoActionPerformed
        pnlMostrar.removeAll();
        agregarPnl();
        cotActual = new Cotizacion();
        cotActual.setCodigo(-1);
        cotActual.setFechaGenerada(new Date());
        cotActual.setUsu_cedula(user.getCi());
        cotActual.setEstado(false);
        cotizar = true;
        jTabbedPane1.setSelectedIndex(1);
        listAccion.setSelectedIndex(0);
    }//GEN-LAST:event_btnNuevoActionPerformed

    private void btnSiguienteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSiguienteActionPerformed
        avanzar = true;
        int i = listAccion.getSelectedIndex();
        if (i == 2 || i == 3) {
            listAccion.setSelectedIndex(1);
        } else if (i == 1) {
            listAccion.setSelectedIndex(4);
        } else {
            listAccion.setSelectedIndex(i + 1);
        }


    }//GEN-LAST:event_btnSiguienteActionPerformed

    //<editor-fold defaultstate="collapsed" desc="comprobarCot">
    private boolean comprobarCot(Cotizacion c) {
        boolean r = true;
        if (c == null) {
            return false;
        }
        if (c.getCli_historia() == -1) {
            JOptionPane.showMessageDialog(pnlCliente, "El cliente seleccionado es inválido.");

            return false;
        }
        if (c.getFechaGenerada() == null) {
            JOptionPane.showMessageDialog(pnlCliente, "Fecha Inválida");
            return false;
        }
        if (c.getUsu_cedula() == null) {
            JOptionPane.showMessageDialog(pnlCliente, "Usuario inválido");
            return false;
        }
        if (c.getUsu_cedula().equals("")) {
            JOptionPane.showMessageDialog(pnlCliente, "Usuario inválido");
            return false;

        }
        ArrayList<Pedido> list = c.getPedidos();
        if (list == null) {
            JOptionPane.showMessageDialog(pnlCliente, "Pedidos inválidos");
            return false;
        }
        for (int i = 0; i < list.size(); i++) {
            Pedido pedido = list.get(i);
            if (pedido.getPed_cantidad() == -1) {
                JOptionPane.showMessageDialog(pnlCliente, "Cantidad inválida.");
                return false;
            }
            if (pedido.getPed_cantidad() == 0) {
                JOptionPane.showMessageDialog(pnlCliente, "La cantidad de un pedido no puede ser 0.");
                return false;
            }
            if (pedido.getCod_prod() == -1 && pedido.getCod_serv() == -1) {
                JOptionPane.showMessageDialog(pnlCliente, "Debe asignar un producto, un servicio o ambos a un pedido.");
                return false;
            }

        }
        return r;
    }

    //</editor-fold>
    public void guardarCot() {
        int codigoNuevo = -1;
        if (cotActual.getCodigo() == -1) { //Documento Nuevo
            if (comprobarCot(cotActual)) {
                try {
                    cotActual.setSubtotal(calcularSubTotal(cotActual));
                    codigoNuevo = controlCot.insertar(cotActual);
                    cotActual.setCodigo(codigoNuevo);
                    ArrayList<Cotizacion> lc = controlCot.listar();
                    cotActual.setCodigo(lc.get(lc.size() - 1).getCodigo());
                    ArrayList<Pedido> lp = cotActual.getPedidos();
                    for (int i = 0; i < lp.size(); i++) {
                        Pedido pedido = lp.get(i);
                        pedido.setCod_cotizacion(cotActual.getCodigo());
                        System.out.println(pedido);
                        controlCot.insertarPed(pedido);
                    }
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            } else {
                System.out.println("Error al comprobar");
            }
        } else {
            //System.out.println("No implementado aun (Abrir)");
            if (comprobarCot(cotActual) && editar) {
                try {
                    cotActual.setSubtotal(calcularSubTotal(cotActual));
                    controlCot.actualizar(cotActual);

                    ArrayList<Cotizacion> lc = controlCot.listar();
                    ArrayList<Pedido> lp = cotActual.getPedidos();
                    controlCot.eliminarPedidos(cotActual.getCodigo());
                    for (int i = 0; i < lp.size(); i++) {
                        Pedido pedido = lp.get(i);
                        pedido.setCod_cotizacion(cotActual.getCodigo());
                        System.out.println(pedido);
                        controlCot.insertarPed(pedido);

                    }
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            } else {
                System.out.println("Error al comprobar");
            }
        }
    }

    private void btnAbrirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAbrirActionPerformed
        int i = tablaCot.getSelectedRow();
        if (i >= 0) {
            pnlMostrar.removeAll();
            agregarPnl();

            i = rs.convertRowIndexToModel(i);

            cotActual = l.get(i);

            System.out.println(" i: " + i + " " + cotActual);
            pnlPedido.setL(cotActual.getPedidos());
            pnlDatosExtra.getTxtFormaPago().setText(cotActual.getFormaPago());
            pnlDatosExtra.getTxtObservacion().setText(cotActual.getObservacion());
            pnlDatosExtra.getDateFinal().setDate(cotActual.getFechaFinal());
            cotizar = true;
            jTabbedPane1.setSelectedIndex(1);
            editar = true;
            avanzar = true;

            listAccion.setSelectedIndex(1);
        } else {
            JOptionPane.showMessageDialog(rootPane, "Seleccione una cotización de la tabla para abrir");
        }
    }//GEN-LAST:event_btnAbrirActionPerformed

    private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem5ActionPerformed
        ReportesCotizacionesPorUsuario rep1 = new ReportesCotizacionesPorUsuario();
        rep1.setVisible(true);
        rep1.setLocationRelativeTo(null);
    }//GEN-LAST:event_jMenuItem5ActionPerformed

    private void jMenuItem11ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem11ActionPerformed
        ReportesCotizacionesVigentes rep2 = new ReportesCotizacionesVigentes();
        rep2.setVisible(true);
        rep2.setLocationRelativeTo(null);
    }//GEN-LAST:event_jMenuItem11ActionPerformed

    private void jMenuItem8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem8ActionPerformed
        try {
            File path = new File("src/Vista/manual.pdf");
            Desktop.getDesktop().open(path);
        } catch (IOException ex) {
            ex.printStackTrace();
        }      // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem8ActionPerformed

    private void agregarPnl() {
        pnlCliente = new PnlSeleccionarCliente();
        pnlPedido = new PnlPedidos(new ArrayList<Pedido>());
        pnlPedido.getBtnSelProd().addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                listAccion.setSelectedIndex(2);
            }
        });
        pnlPedido.getBtnSelServ().addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                listAccion.setSelectedIndex(3);
            }
        });

        pnlProd = new PnlProd();
        pnlServ = new PnlSer();
        pnlDatosExtra = new PnlDatosExtra();
        pnlExp = new PnlExportar(cotActual);
        pnlPreview = new PnlPrevisualizar(cotActual);

        pnlMostrar.add(pnlCliente, CLIENTE);
        pnlMostrar.add(pnlProd, PROD);
        pnlMostrar.add(pnlPedido, PEDIDO);
        pnlMostrar.add(pnlServ, SERV);
        pnlMostrar.add(pnlDatosExtra, EXTRA);
        pnlMostrar.add(pnlPreview, PREVISUALIZAR);
        pnlMostrar.add(pnlExp, EXPORTAR);

    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Principal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Principal().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnAbrir;
    private javax.swing.JButton btnNuevo;
    private javax.swing.JButton btnSiguiente;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu4;
    private javax.swing.JMenu jMenu6;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem10;
    private javax.swing.JMenuItem jMenuItem11;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JMenuItem jMenuItem5;
    private javax.swing.JMenuItem jMenuItem6;
    private javax.swing.JMenuItem jMenuItem7;
    private javax.swing.JMenuItem jMenuItem8;
    private javax.swing.JMenuItem jMenuItem9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JToolBar jToolBar1;
    private javax.swing.JLabel lblUser;
    private javax.swing.JList listAccion;
    private javax.swing.JMenuItem mbtnEliminarUsuario;
    private javax.swing.JMenuItem mbtnModUsuario;
    private javax.swing.JMenuItem mbtnNuevoUsuario;
    private javax.swing.JMenuItem mbtnRegProd;
    private javax.swing.JMenuItem mbtnRegServ;
    private javax.swing.JMenu menuInventario;
    private javax.swing.JMenu menuPromociones;
    private javax.swing.JMenu menuProveedores;
    private javax.swing.JMenu menuRegistrar;
    private javax.swing.JMenu menuReportes;
    private javax.swing.JMenu menuUsuarios;
    private javax.swing.JPanel pnlMostrar;
    private javax.swing.JTable tablaCot;
    private org.jdesktop.swingx.JXSearchField txtBuscarCot;
    // End of variables declaration//GEN-END:variables
}
